package day03;

public class HmoeWork {
    public static void main(String[] args) {
        /*1. 运算符的练习：算术、关系、逻辑、赋值、字符串连接、条件
        2. 分支结构的练习：if结构
        3. 分支结构的练习：if...else结构
        4. 分支结构的练习：if...else if结构

        System.out.println(8%2);//0
        System.out.println(5%2);//1
        System.out.println(2%5);//2 小数取余大数，取余后为本身
        //单独用自增/自减在前后都一样
        int a=5,b=6;
        a++;b++;//a=6,b=7
        //被使用++在前后不一样
        int c=a++;//a=7,c=6
        int d=++b;//b=8,d=8
        System.out.println(a++);//7,a=8
        System.out.println(++a);//9,a=9
        System.out.println(++c);//7,c=7
        System.out.println(d++);//8,d=9
        System.out.println(b++);//8,b=9
         */




        /*2.运算符的练习：算术
         - 输出几个整数取模，验证结果
         - 声明两个整型变量，演示单独使用时的自增和自减
         - 声明几个整型变量，演示被使用时的自增和自减

          int a=5,b=10,c=5;
          boolean b1=b>a;
        System.out.println(b1);
        System.out.println(c<b);
        System.out.println(a==2*b);
        System.out.println(c!=a);
        System.out.println(a>=b);
        System.out.println(a<=b);
        System.out.println(a++==c);
        System.out.println(--a!=b);
         */




        /*3.运算符的练习：逻辑
        - 声明三个整型变量，演示&&和||，演示!
        - &&的演示要求：true+false、false+true、true+true、false+false
        - ||的演示要求：true+false、false+true、true+true、false+false
        - !的演示要求：true、false
        - 演示短路&&与短路||

        int a=5,b=10,c=5;
        System.out.println(a<b && b==c);
        System.out.println(a>=c || b!=a);
        System.out.println(a<=b && a!=c);
        boolean b2=!(a<b);
        System.out.println(b2);//!true=false
        System.out.println(!(a>b));//!false=true
        //短路
        boolean b3=a>=b && b>c;//false 短路了，逻辑与遇false则false
        System.out.println(a<=b || b<c);//true 逻辑或遇true则true
         */



        /*
         4.运算符的练习：赋值
         - 声明一个整型变量，演示扩展赋值+=、-=、*=、/=、%=的效果
         - 声明short型变量s，演示简单赋值运算的自增10，演示扩展赋值运算的自增10
        int a=5;
        a+=1;//a=a+1
        a-=10;//a=a-10
        a*=2;//a=a*2
        a/=3;//a=a/3
        a%=2;//a=a%2//a%2=1
        short s=5;
        //s=s+10//编辑错误，需要强制转换s=(short)(s+10)"两个规则“
        s=+10;//赋值运算符自动强制转换
         */

        /*
        5.运算符的练习：字符串连接
        - 声明整型变量age和字符串型变量name，输出字符串连接的结果
        - 输出几个数据的拼接，演示字符串连接的同化作用
        System.out.println("age=");
        System.out.println("我的年龄是："+age);//我的年龄是25、
        //演示同化作用
        System.out.println(20+15+30+"");
        System.out.println(""+10+45+20);
        int age=25;
        System.out.println(20+15+""+10);
         */



        /*
        6.运算符的练习：条件/三目
        - 声明并初始化整型变量，使用条件运算符实现：若>0则给flag赋值为1，否则赋值为0
        - 声明两个整型变量，使用条件运算符实现：求这两个变量的最大值
        int num=20;
        int flag=num>10?2:3;
        System.out.println(flag);
        //求变量最大值
        int a=2,b=3;
        int c=a>b?a:b;
        System.out.println(c);
         */


        /*
        7.分支结构的练习：if
        - 满500打8折
        - 判断成绩是否合法
        int a=400;
        if (a>=500){
            a*=0.8;
        }
        int b=85;
        if (b<=100 && b>=0){
            System.out.println("合法");
        }
        System.out.println("继续执行");
        */


        /*8.分支结构的练习：if...else
         - 满500打8折，不满500打9折
         - 判断成绩合法还是不合法
        int price=600;
        if (price>=500){
            price*=0.8;
        }else {
            price*=0.9;
        }
        System.out.println(price);
        int score=95;
        if (score<=100 && score>=0){
            System.out.println("成绩合法");
        }else {
            System.out.println("成绩不合法");
        }
         */





        /*9.分支结构的练习：if...else if
        - 满2000打5折，满1000不满2000打7折，满500不满1000打8折，不满500打9折
        int price=5000；
        if(price>=5000){
            price*=0.5;
        }else if (price>=1000){
            price*=0.7;
        }else if (price>=500){
            price*=0.8;
        }else if (price<500){
            price*=0.9;
        }
         */
        /*拓展练习
        1.声明两个整型变量a和b并分别赋值，找到a和b中的最大值，并输出。用两种方式实现：条件运算符、if..else分支结构。
         */
        int a=5,b=10;
        int max=a>b?a:b;
        System.out.println(max);
        if (a>b){
            max=a;
        }else {
            max=b;
        }
        /*
        2.声明一个整型变量year并存储年份，判断其是平年还是闰年，若是闰年则输出"某某某年是闰年"，否则输出"某某某年是平年".
        闰年的判断公式:
        1)4年一闰，百年不闰，就是：能被4整除，并且，不能被100整除
        或者
        2)400年再闰，就是：能被400整除
         */
        int year=20501;
        if ((year%4==0 || year%100!=0) || year%4==0){
            System.out.println("闰年");
        }else {
            System.out.println("平年");
        }
        /*3.成绩等级判断
        A:成绩大于等于90
        B:成绩大于等于80并且小于90
        C:成绩大于等于60并且小于80
        D:成绩小于60
         */
        int score=100;
        if (score>100 || score<0){
            System.out.println("成绩不合法");
        }else if (score>=90){
            System.out.println("A");
        }else if (score>=80){
            System.out.println("B");
        }else if (score>=60){
            System.out.println("C");
        }else if (score<60){
            System.out.println("D");
        }
        //知识点
        /*
        运算符
        条件：boolean?数1：数2；
        逻辑：&& || ！ 短路
        关系：> < >= <= == != ++ --
        赋值：*= += -= /= %=
        字符串：+
        算数：+，-，*，/，%，++，--
        分支结构
        if...
        if(){

        }else{

        }...
        if(){

        }else if(){

        }......

        */
        /*
        1. 运算符的练习：算术、关系、逻辑、赋值、字符串连接、条件
        2. 分支结构的练习：if结构
        3. 分支结构的练习：if...else结构
        4. 分支结构的练习：if...else if结构
         */


        /*
        2.运算符的练习：算术
         - 输出几个整数取模，验证结果
         - 声明两个整型变量，演示单独使用时的自增和自减
         - 声明几个整型变量，演示被使用时的自增和自减
         */


        /*
        3.运算符的练习：逻辑
        - 声明三个整型变量，演示&&和||，演示!
        - &&的演示要求：true+false、false+true、true+true、false+false
        - ||的演示要求：true+false、false+true、true+true、false+false
        - !的演示要求：true、false
        - 演示短路&&与短路||
         */


        /*
        4.运算符的练习：赋值
         - 声明一个整型变量，演示扩展赋值+=、-=、*=、/=、%=的效果
         - 声明short型变量s，演示简单赋值运算的自增10，演示扩展赋值运算的自增10
         */


        /*
        5.运算符的练习：字符串连接
        - 声明整型变量age和字符串型变量name，输出字符串连接的结果
        - 输出几个数据的拼接，演示字符串连接的同化作用
         */
        int age=20;
        String name="GXX";
        System.out.println("我的名字是"+name+"我今年"+age+"岁了");
        System.out.println();


        /*
        6.运算符的练习：条件/三目
        - 声明并初始化整型变量，使用条件运算符实现：若>0则给flag赋值为1，否则赋值为0
        - 声明两个整型变量，使用条件运算符实现：求这两个变量的最大值

        int x=2;
        int flag=x>0?1:0;
        System.out.println(flag);
        int q=2,w=3;
        int p=q>w?q:w;
        System.out.println(p);

         */


        /*
        7.分支结构的练习：if
        - 满500打8折
        - 判断成绩是否合法

        int price=100;
        if (price>=500){
            price*=0.8;
        }
        System.out.println(price);
        int score=95;
        if (score>=0&&score<=100){
            System.out.println("成绩合法");
        }

         */


        /*
        8.分支结构的练习：if...else
         - 满500打8折，不满500打9折
         - 判断成绩合法还是不合法

        int price=2000;
        if (price>=500){
            price*=0.8;
        }else {
            price*=0.9;
        }
        System.out.println(price);
        int score=95;
        if (score>=0&&score<=100){
            System.out.println("成绩合法");
        }else {
            System.out.println("成绩不合法");
        }

         */


        /*
        9.分支结构的练习：if...else if
        - 满2000打5折，满1000不满2000打7折，满500不满1000打8折，不满500打9折

        int price=5000;
        if(price>=2000){
            price*=0.5;
        }else if (price>=1000){
            price*=0.7;
        }else if (price>=500){
            price*=0.8;
        }else if (price<500&&price>0){
            price*=0.9;
        }
        System.out.println(price);

         */



    }
}
